﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;
using System.Net.Mail;

public partial class BijzondereKaart : System.Web.UI.Page
{
    DB db = new DB();
    DataTable bijzkaart;
    BijzKaart bijzkaarten;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["Username"] == null)
        {
            Response.Redirect("Default.aspx");
        }

        if (!IsPostBack)
        {
            bindtoRepeater();
            Session["bijzkaart"] = null;
        }
        else
        {
            bijzkaarten = (BijzKaart)Session["bijzkaart"];
        }
    }

    protected void bindtoRepeater()
    {
        bijzkaart = db.getBijzKaarten();
        Repeater1.DataSource = bijzkaart;
        Repeater1.DataBind();
        Session["bijzkaart"] = bijzkaarten;
    }

    protected void BijzKaarten_ItemCommand(Object source, RepeaterCommandEventArgs e)
    {
        if(e.CommandName.Equals("Abonnement"))
        {
            Panel1.Visible = true;
            tegoed.Visible = false;
            abo.Visible = true;
            string naam = "Abonnement";
            bijzkaarten = new BijzKaart(naam);
            Session["bijzkaart"] = bijzkaarten;
            leegVelden();
            lbPrint.Visible = false;
        }
        else if(e.CommandName.Equals("Bioscoopbon"))
        {
            Panel1.Visible = true;
            tegoed.Visible = true;
            abo.Visible = false;
            string naam = "Bioscoopbon";
            bijzkaarten = new BijzKaart(naam);
            Session["bijzkaart"] = bijzkaarten;
            leegVelden();
            lbPrint.Visible = false;
        }
        else if(e.CommandName.Equals("Tienrittenkaart"))
        {
            Panel1.Visible = true;
            tegoed.Visible = false;
            abo.Visible = false;
            string naam = "Tienrittenkaart";
            bijzkaarten = new BijzKaart(naam);
            Session["bijzkaart"] = bijzkaarten;
            leegVelden();
            lbPrint.Visible = false;
        }
    }
    protected void btPrint_Click(object sender, EventArgs e)
    {
        if (abo.Visible == true)
        {
            printAbo();
        }
        else if (tegoed.Visible == true)
        {
            printBon();
        }
        else
        {
            printRit();
        }
    }

    private void printRit()
    {
        Document doc = new Document(iTextSharp.text.PageSize.LETTER, 10, 10, 42, 35);

        PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream("C:\\Temp\\Tienrittenkaart" + "_"+Voornaam.Text +"_"+Achternaam.Text+".pdf", FileMode.Create));
        doc.Open();//Open Document to write

        Paragraph header = new Paragraph("-----------------------------------------------------------------------");
        Paragraph soort = new Paragraph ("                      " + "Tienrittenkaart");
        Paragraph naam = new Paragraph  ("                      " + Voornaam.Text + " " + Achternaam.Text);
        Paragraph ritten = new Paragraph("                      " + "1 2 3 4 5 6 7 8 9 10");
        doc.Add(header);
        doc.Add(soort);
        doc.Add(naam);
        doc.Add(ritten);
        doc.Add(header);

        doc.Close(); //Close document
        stuurMail(Email.Text);
        lbPrint.Visible = true;
        lbPrint.Text = "Uw Tienrittenkaart is met succes geprint en gemaild naar "+Email.Text+"!";
        leegVelden();
        }

    
    

    private void printBon()
    {
        Document doc = new Document(iTextSharp.text.PageSize.LETTER, 10, 10, 42, 35);

        PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream("C:\\Temp\\Bioscoopbon" + "_" + Voornaam.Text + "_" + Achternaam.Text + ".pdf", FileMode.Create));
        doc.Open();//Open Document to write

        Paragraph header = new Paragraph("-----------------------------------------------------------------------");
        Paragraph soort = new Paragraph ("                      " + "Bioscoopbon");
        Paragraph naam = new Paragraph  ("                      " + Voornaam.Text + " " + Achternaam.Text);
        Paragraph tegoed = new Paragraph("                      Tegoed: €" + Tegoedtxt.Text+",-");
        doc.Add(header);
        doc.Add(soort);
        doc.Add(naam);
        doc.Add(tegoed);
        doc.Add(header);

        doc.Close(); //Close document
        stuurMail(Email.Text);
        lbPrint.Visible = true;
        lbPrint.Text = "Uw Bioscoopbon is met succes geprint en gemaild naar:" + Email.Text + "!";
        leegVelden();
    }

    private void printAbo()
    {
        Document doc = new Document(iTextSharp.text.PageSize.LETTER, 10, 10, 42, 35);

        PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream("C:\\Temp\\Abonnement" + "_" + Voornaam.Text + "_" + Achternaam.Text + ".pdf", FileMode.Create));
        doc.Open();//Open Document to write

        Paragraph header = new Paragraph("-----------------------------------------------------------------------");
        Paragraph soort = new Paragraph ("                      " + "Abonnement");
        Paragraph naam = new Paragraph  ("                      " + Voornaam.Text + " " + Achternaam.Text);
        Paragraph geldig = new Paragraph("                      Geldig tot:" + getgeldigDatum(drdGeldig.SelectedValue));
        doc.Add(header);
        doc.Add(soort);
        doc.Add(naam);
        doc.Add(geldig);
        doc.Add(header);

        doc.Close(); //Close document

        stuurMail(Email.Text);
        lbPrint.Visible = true;
        lbPrint.Text = "Uw Abonnement is met succes geprint en gemaild naar:" + Email.Text + "!";
        leegVelden();
    }

    private void leegVelden()
    {
        Voornaam.Text = "";
        Achternaam.Text = "";
        Email.Text = "";
        Tegoedtxt.Text = "";
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        leegVelden();
    }

    protected string getgeldigDatum(string lengte)
    {
        if (lengte.Equals("Jaar"))
        {
            DateTime datum = DateTime.Now;
            DateTime datum2 = datum.AddYears(1);
            string geldigTot = datum2.ToString();
            return geldigTot;
        }
        else if (lengte.Equals("Half jaar"))
        {
            DateTime datum = DateTime.Now;
            DateTime datum2 = datum.AddMonths(6);
            string geldigTot = datum2.ToString();
            return geldigTot;
        }
        else if (lengte.Equals("Maand"))
        {
            DateTime datum = DateTime.Now;
            DateTime datum2 = datum.AddMonths(1);
            string geldigTot = datum2.ToString();
            return geldigTot;
        }
        else 
        {
            return "niets";
        }
        
    }

    public void stuurMail(string email)
    {
        MailMessage mail = new MailMessage();
        SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

        mail.From = new MailAddress("avansbioscoop@gmail.com");
        mail.To.Add(email);
        if (bijzkaarten.Kaartnaam.Equals("Abonnement"))
        {
            mail.Subject = "Aankoop AvansBioscoop Abonnement";
            mail.Body = "Beste "+Voornaam.Text+"," + System.Environment.NewLine + System.Environment.NewLine + "Uw abonnement aankoop is voltooid." + System.Environment.NewLine +"Uw abonnement is geldig tot: "+ getgeldigDatum(drdGeldig.SelectedValue) + System.Environment.NewLine + System.Environment.NewLine + "Met vriendelijke groet," + System.Environment.NewLine + System.Environment.NewLine + "Avans Bioscoop";
        }
        else if(bijzkaarten.Kaartnaam.Equals("Tienrittenkaart"))
        {
            mail.Subject = "Aankoop AvansBioscoop Tienrittenkaart";
            mail.Body = "Beste klant," + System.Environment.NewLine + System.Environment.NewLine + "Uw Tienrittenkaart aankoop is voltooid." + System.Environment.NewLine + System.Environment.NewLine + "Met vriendelijke groet," + System.Environment.NewLine + System.Environment.NewLine + "Avans Bioscoop";

        }
        else 
        {
            mail.Subject = "Aankoop AvansBioscoop Bioscoopbon";
            mail.Body = "Beste klant," + System.Environment.NewLine + System.Environment.NewLine + "Uw bioscoopbon aankoop is voltooid." + System.Environment.NewLine +"Uw bioscoopbon heeft een totale waarde van: € "+Tegoedtxt.Text + System.Environment.NewLine + System.Environment.NewLine + "Met vriendelijke groet," + System.Environment.NewLine + System.Environment.NewLine + "Avans Bioscoop";
        }

        SmtpServer.Port = 587;
        SmtpServer.Credentials = new System.Net.NetworkCredential("avansbioscoop@gmail.com", "avansbioscoop");
        SmtpServer.EnableSsl = true;

        SmtpServer.Send(mail);

    }
}